﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using MusicExplorer.Data;
using MusicExplorer.WebRepository.Service;

namespace MusicExplorer.WebRepository
{
    public abstract class WebRepositoryBase
    {
        protected WEB_REPOSITORY m_web_repository;
        public WEB_REPOSITORY WebRepository { get { return m_web_repository; } }

        protected int m_result_per_page;

        public static WebRepositoryBase CreateWebRepository(WEB_REPOSITORY repo)
        {
            if (repo.web_repo_key == "BeatportWebRepository")
                return new BeatportWebRepository();
            else if (repo.web_repo_key == "TrackitdownWebRepository")
                return new TrackitdownWebRepository();
            else if (repo.web_repo_key == "WorldofhouseWebRepository")
                return new WorldofhouseWebRepository();
            else if (repo.web_repo_key == "FavoriteTracksWebRepository")
                return new FavoriteTracksWebRepository();
            else if (repo.type_web_repo_id == ServiceWebRepository.GetTypeWebRepository(TypeWebRepository.YoutubeChannel).type_web_repo_id)
                return new YoutubeWebRepository(repo.web_repo_key);
            else if (repo.type_web_repo_id == ServiceWebRepository.GetTypeWebRepository(TypeWebRepository.SoundcloudAccount).type_web_repo_id)
                return new SoundcloudWebRepository(repo.web_repo_key);
            else return null;
        }
    }
}
